package com.azure.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class TUserExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public TUserExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andUsernameIsNull() {
            addCriterion("username is null");
            return (Criteria) this;
        }

        public Criteria andUsernameIsNotNull() {
            addCriterion("username is not null");
            return (Criteria) this;
        }

        public Criteria andUsernameEqualTo(String value) {
            addCriterion("username =", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameNotEqualTo(String value) {
            addCriterion("username <>", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameGreaterThan(String value) {
            addCriterion("username >", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameGreaterThanOrEqualTo(String value) {
            addCriterion("username >=", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameLessThan(String value) {
            addCriterion("username <", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameLessThanOrEqualTo(String value) {
            addCriterion("username <=", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameLike(String value) {
            addCriterion("username like", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameNotLike(String value) {
            addCriterion("username not like", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameIn(List<String> values) {
            addCriterion("username in", values, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameNotIn(List<String> values) {
            addCriterion("username not in", values, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameBetween(String value1, String value2) {
            addCriterion("username between", value1, value2, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameNotBetween(String value1, String value2) {
            addCriterion("username not between", value1, value2, "username");
            return (Criteria) this;
        }

        public Criteria andAddrOtherIsNull() {
            addCriterion("addr_other is null");
            return (Criteria) this;
        }

        public Criteria andAddrOtherIsNotNull() {
            addCriterion("addr_other is not null");
            return (Criteria) this;
        }

        public Criteria andAddrOtherEqualTo(String value) {
            addCriterion("addr_other =", value, "addrOther");
            return (Criteria) this;
        }

        public Criteria andAddrOtherNotEqualTo(String value) {
            addCriterion("addr_other <>", value, "addrOther");
            return (Criteria) this;
        }

        public Criteria andAddrOtherGreaterThan(String value) {
            addCriterion("addr_other >", value, "addrOther");
            return (Criteria) this;
        }

        public Criteria andAddrOtherGreaterThanOrEqualTo(String value) {
            addCriterion("addr_other >=", value, "addrOther");
            return (Criteria) this;
        }

        public Criteria andAddrOtherLessThan(String value) {
            addCriterion("addr_other <", value, "addrOther");
            return (Criteria) this;
        }

        public Criteria andAddrOtherLessThanOrEqualTo(String value) {
            addCriterion("addr_other <=", value, "addrOther");
            return (Criteria) this;
        }

        public Criteria andAddrOtherLike(String value) {
            addCriterion("addr_other like", value, "addrOther");
            return (Criteria) this;
        }

        public Criteria andAddrOtherNotLike(String value) {
            addCriterion("addr_other not like", value, "addrOther");
            return (Criteria) this;
        }

        public Criteria andAddrOtherIn(List<String> values) {
            addCriterion("addr_other in", values, "addrOther");
            return (Criteria) this;
        }

        public Criteria andAddrOtherNotIn(List<String> values) {
            addCriterion("addr_other not in", values, "addrOther");
            return (Criteria) this;
        }

        public Criteria andAddrOtherBetween(String value1, String value2) {
            addCriterion("addr_other between", value1, value2, "addrOther");
            return (Criteria) this;
        }

        public Criteria andAddrOtherNotBetween(String value1, String value2) {
            addCriterion("addr_other not between", value1, value2, "addrOther");
            return (Criteria) this;
        }

        public Criteria andAddrQuXianIsNull() {
            addCriterion("addr_qu_xian is null");
            return (Criteria) this;
        }

        public Criteria andAddrQuXianIsNotNull() {
            addCriterion("addr_qu_xian is not null");
            return (Criteria) this;
        }

        public Criteria andAddrQuXianEqualTo(String value) {
            addCriterion("addr_qu_xian =", value, "addrQuXian");
            return (Criteria) this;
        }

        public Criteria andAddrQuXianNotEqualTo(String value) {
            addCriterion("addr_qu_xian <>", value, "addrQuXian");
            return (Criteria) this;
        }

        public Criteria andAddrQuXianGreaterThan(String value) {
            addCriterion("addr_qu_xian >", value, "addrQuXian");
            return (Criteria) this;
        }

        public Criteria andAddrQuXianGreaterThanOrEqualTo(String value) {
            addCriterion("addr_qu_xian >=", value, "addrQuXian");
            return (Criteria) this;
        }

        public Criteria andAddrQuXianLessThan(String value) {
            addCriterion("addr_qu_xian <", value, "addrQuXian");
            return (Criteria) this;
        }

        public Criteria andAddrQuXianLessThanOrEqualTo(String value) {
            addCriterion("addr_qu_xian <=", value, "addrQuXian");
            return (Criteria) this;
        }

        public Criteria andAddrQuXianLike(String value) {
            addCriterion("addr_qu_xian like", value, "addrQuXian");
            return (Criteria) this;
        }

        public Criteria andAddrQuXianNotLike(String value) {
            addCriterion("addr_qu_xian not like", value, "addrQuXian");
            return (Criteria) this;
        }

        public Criteria andAddrQuXianIn(List<String> values) {
            addCriterion("addr_qu_xian in", values, "addrQuXian");
            return (Criteria) this;
        }

        public Criteria andAddrQuXianNotIn(List<String> values) {
            addCriterion("addr_qu_xian not in", values, "addrQuXian");
            return (Criteria) this;
        }

        public Criteria andAddrQuXianBetween(String value1, String value2) {
            addCriterion("addr_qu_xian between", value1, value2, "addrQuXian");
            return (Criteria) this;
        }

        public Criteria andAddrQuXianNotBetween(String value1, String value2) {
            addCriterion("addr_qu_xian not between", value1, value2, "addrQuXian");
            return (Criteria) this;
        }

        public Criteria andAddrShengIsNull() {
            addCriterion("addr_sheng is null");
            return (Criteria) this;
        }

        public Criteria andAddrShengIsNotNull() {
            addCriterion("addr_sheng is not null");
            return (Criteria) this;
        }

        public Criteria andAddrShengEqualTo(String value) {
            addCriterion("addr_sheng =", value, "addrSheng");
            return (Criteria) this;
        }

        public Criteria andAddrShengNotEqualTo(String value) {
            addCriterion("addr_sheng <>", value, "addrSheng");
            return (Criteria) this;
        }

        public Criteria andAddrShengGreaterThan(String value) {
            addCriterion("addr_sheng >", value, "addrSheng");
            return (Criteria) this;
        }

        public Criteria andAddrShengGreaterThanOrEqualTo(String value) {
            addCriterion("addr_sheng >=", value, "addrSheng");
            return (Criteria) this;
        }

        public Criteria andAddrShengLessThan(String value) {
            addCriterion("addr_sheng <", value, "addrSheng");
            return (Criteria) this;
        }

        public Criteria andAddrShengLessThanOrEqualTo(String value) {
            addCriterion("addr_sheng <=", value, "addrSheng");
            return (Criteria) this;
        }

        public Criteria andAddrShengLike(String value) {
            addCriterion("addr_sheng like", value, "addrSheng");
            return (Criteria) this;
        }

        public Criteria andAddrShengNotLike(String value) {
            addCriterion("addr_sheng not like", value, "addrSheng");
            return (Criteria) this;
        }

        public Criteria andAddrShengIn(List<String> values) {
            addCriterion("addr_sheng in", values, "addrSheng");
            return (Criteria) this;
        }

        public Criteria andAddrShengNotIn(List<String> values) {
            addCriterion("addr_sheng not in", values, "addrSheng");
            return (Criteria) this;
        }

        public Criteria andAddrShengBetween(String value1, String value2) {
            addCriterion("addr_sheng between", value1, value2, "addrSheng");
            return (Criteria) this;
        }

        public Criteria andAddrShengNotBetween(String value1, String value2) {
            addCriterion("addr_sheng not between", value1, value2, "addrSheng");
            return (Criteria) this;
        }

        public Criteria andAddrShiIsNull() {
            addCriterion("addr_shi is null");
            return (Criteria) this;
        }

        public Criteria andAddrShiIsNotNull() {
            addCriterion("addr_shi is not null");
            return (Criteria) this;
        }

        public Criteria andAddrShiEqualTo(String value) {
            addCriterion("addr_shi =", value, "addrShi");
            return (Criteria) this;
        }

        public Criteria andAddrShiNotEqualTo(String value) {
            addCriterion("addr_shi <>", value, "addrShi");
            return (Criteria) this;
        }

        public Criteria andAddrShiGreaterThan(String value) {
            addCriterion("addr_shi >", value, "addrShi");
            return (Criteria) this;
        }

        public Criteria andAddrShiGreaterThanOrEqualTo(String value) {
            addCriterion("addr_shi >=", value, "addrShi");
            return (Criteria) this;
        }

        public Criteria andAddrShiLessThan(String value) {
            addCriterion("addr_shi <", value, "addrShi");
            return (Criteria) this;
        }

        public Criteria andAddrShiLessThanOrEqualTo(String value) {
            addCriterion("addr_shi <=", value, "addrShi");
            return (Criteria) this;
        }

        public Criteria andAddrShiLike(String value) {
            addCriterion("addr_shi like", value, "addrShi");
            return (Criteria) this;
        }

        public Criteria andAddrShiNotLike(String value) {
            addCriterion("addr_shi not like", value, "addrShi");
            return (Criteria) this;
        }

        public Criteria andAddrShiIn(List<String> values) {
            addCriterion("addr_shi in", values, "addrShi");
            return (Criteria) this;
        }

        public Criteria andAddrShiNotIn(List<String> values) {
            addCriterion("addr_shi not in", values, "addrShi");
            return (Criteria) this;
        }

        public Criteria andAddrShiBetween(String value1, String value2) {
            addCriterion("addr_shi between", value1, value2, "addrShi");
            return (Criteria) this;
        }

        public Criteria andAddrShiNotBetween(String value1, String value2) {
            addCriterion("addr_shi not between", value1, value2, "addrShi");
            return (Criteria) this;
        }

        public Criteria andNameIsNull() {
            addCriterion("name is null");
            return (Criteria) this;
        }

        public Criteria andNameIsNotNull() {
            addCriterion("name is not null");
            return (Criteria) this;
        }

        public Criteria andNameEqualTo(String value) {
            addCriterion("name =", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotEqualTo(String value) {
            addCriterion("name <>", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThan(String value) {
            addCriterion("name >", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThanOrEqualTo(String value) {
            addCriterion("name >=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThan(String value) {
            addCriterion("name <", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThanOrEqualTo(String value) {
            addCriterion("name <=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLike(String value) {
            addCriterion("name like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotLike(String value) {
            addCriterion("name not like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameIn(List<String> values) {
            addCriterion("name in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotIn(List<String> values) {
            addCriterion("name not in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameBetween(String value1, String value2) {
            addCriterion("name between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotBetween(String value1, String value2) {
            addCriterion("name not between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andPasswordIsNull() {
            addCriterion("password is null");
            return (Criteria) this;
        }

        public Criteria andPasswordIsNotNull() {
            addCriterion("password is not null");
            return (Criteria) this;
        }

        public Criteria andPasswordEqualTo(String value) {
            addCriterion("password =", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordNotEqualTo(String value) {
            addCriterion("password <>", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordGreaterThan(String value) {
            addCriterion("password >", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordGreaterThanOrEqualTo(String value) {
            addCriterion("password >=", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordLessThan(String value) {
            addCriterion("password <", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordLessThanOrEqualTo(String value) {
            addCriterion("password <=", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordLike(String value) {
            addCriterion("password like", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordNotLike(String value) {
            addCriterion("password not like", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordIn(List<String> values) {
            addCriterion("password in", values, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordNotIn(List<String> values) {
            addCriterion("password not in", values, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordBetween(String value1, String value2) {
            addCriterion("password between", value1, value2, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordNotBetween(String value1, String value2) {
            addCriterion("password not between", value1, value2, "password");
            return (Criteria) this;
        }

        public Criteria andPhoneIsNull() {
            addCriterion("phone is null");
            return (Criteria) this;
        }

        public Criteria andPhoneIsNotNull() {
            addCriterion("phone is not null");
            return (Criteria) this;
        }

        public Criteria andPhoneEqualTo(String value) {
            addCriterion("phone =", value, "phone");
            return (Criteria) this;
        }

        public Criteria andPhoneNotEqualTo(String value) {
            addCriterion("phone <>", value, "phone");
            return (Criteria) this;
        }

        public Criteria andPhoneGreaterThan(String value) {
            addCriterion("phone >", value, "phone");
            return (Criteria) this;
        }

        public Criteria andPhoneGreaterThanOrEqualTo(String value) {
            addCriterion("phone >=", value, "phone");
            return (Criteria) this;
        }

        public Criteria andPhoneLessThan(String value) {
            addCriterion("phone <", value, "phone");
            return (Criteria) this;
        }

        public Criteria andPhoneLessThanOrEqualTo(String value) {
            addCriterion("phone <=", value, "phone");
            return (Criteria) this;
        }

        public Criteria andPhoneLike(String value) {
            addCriterion("phone like", value, "phone");
            return (Criteria) this;
        }

        public Criteria andPhoneNotLike(String value) {
            addCriterion("phone not like", value, "phone");
            return (Criteria) this;
        }

        public Criteria andPhoneIn(List<String> values) {
            addCriterion("phone in", values, "phone");
            return (Criteria) this;
        }

        public Criteria andPhoneNotIn(List<String> values) {
            addCriterion("phone not in", values, "phone");
            return (Criteria) this;
        }

        public Criteria andPhoneBetween(String value1, String value2) {
            addCriterion("phone between", value1, value2, "phone");
            return (Criteria) this;
        }

        public Criteria andPhoneNotBetween(String value1, String value2) {
            addCriterion("phone not between", value1, value2, "phone");
            return (Criteria) this;
        }

        public Criteria andAddrXiangJiedaoIsNull() {
            addCriterion("addr_xiang_jiedao is null");
            return (Criteria) this;
        }

        public Criteria andAddrXiangJiedaoIsNotNull() {
            addCriterion("addr_xiang_jiedao is not null");
            return (Criteria) this;
        }

        public Criteria andAddrXiangJiedaoEqualTo(String value) {
            addCriterion("addr_xiang_jiedao =", value, "addrXiangJiedao");
            return (Criteria) this;
        }

        public Criteria andAddrXiangJiedaoNotEqualTo(String value) {
            addCriterion("addr_xiang_jiedao <>", value, "addrXiangJiedao");
            return (Criteria) this;
        }

        public Criteria andAddrXiangJiedaoGreaterThan(String value) {
            addCriterion("addr_xiang_jiedao >", value, "addrXiangJiedao");
            return (Criteria) this;
        }

        public Criteria andAddrXiangJiedaoGreaterThanOrEqualTo(String value) {
            addCriterion("addr_xiang_jiedao >=", value, "addrXiangJiedao");
            return (Criteria) this;
        }

        public Criteria andAddrXiangJiedaoLessThan(String value) {
            addCriterion("addr_xiang_jiedao <", value, "addrXiangJiedao");
            return (Criteria) this;
        }

        public Criteria andAddrXiangJiedaoLessThanOrEqualTo(String value) {
            addCriterion("addr_xiang_jiedao <=", value, "addrXiangJiedao");
            return (Criteria) this;
        }

        public Criteria andAddrXiangJiedaoLike(String value) {
            addCriterion("addr_xiang_jiedao like", value, "addrXiangJiedao");
            return (Criteria) this;
        }

        public Criteria andAddrXiangJiedaoNotLike(String value) {
            addCriterion("addr_xiang_jiedao not like", value, "addrXiangJiedao");
            return (Criteria) this;
        }

        public Criteria andAddrXiangJiedaoIn(List<String> values) {
            addCriterion("addr_xiang_jiedao in", values, "addrXiangJiedao");
            return (Criteria) this;
        }

        public Criteria andAddrXiangJiedaoNotIn(List<String> values) {
            addCriterion("addr_xiang_jiedao not in", values, "addrXiangJiedao");
            return (Criteria) this;
        }

        public Criteria andAddrXiangJiedaoBetween(String value1, String value2) {
            addCriterion("addr_xiang_jiedao between", value1, value2, "addrXiangJiedao");
            return (Criteria) this;
        }

        public Criteria andAddrXiangJiedaoNotBetween(String value1, String value2) {
            addCriterion("addr_xiang_jiedao not between", value1, value2, "addrXiangJiedao");
            return (Criteria) this;
        }

        public Criteria andCreatedateIsNull() {
            addCriterion("createdate is null");
            return (Criteria) this;
        }

        public Criteria andCreatedateIsNotNull() {
            addCriterion("createdate is not null");
            return (Criteria) this;
        }

        public Criteria andCreatedateEqualTo(Date value) {
            addCriterion("createdate =", value, "createdate");
            return (Criteria) this;
        }

        public Criteria andCreatedateNotEqualTo(Date value) {
            addCriterion("createdate <>", value, "createdate");
            return (Criteria) this;
        }

        public Criteria andCreatedateGreaterThan(Date value) {
            addCriterion("createdate >", value, "createdate");
            return (Criteria) this;
        }

        public Criteria andCreatedateGreaterThanOrEqualTo(Date value) {
            addCriterion("createdate >=", value, "createdate");
            return (Criteria) this;
        }

        public Criteria andCreatedateLessThan(Date value) {
            addCriterion("createdate <", value, "createdate");
            return (Criteria) this;
        }

        public Criteria andCreatedateLessThanOrEqualTo(Date value) {
            addCriterion("createdate <=", value, "createdate");
            return (Criteria) this;
        }

        public Criteria andCreatedateIn(List<Date> values) {
            addCriterion("createdate in", values, "createdate");
            return (Criteria) this;
        }

        public Criteria andCreatedateNotIn(List<Date> values) {
            addCriterion("createdate not in", values, "createdate");
            return (Criteria) this;
        }

        public Criteria andCreatedateBetween(Date value1, Date value2) {
            addCriterion("createdate between", value1, value2, "createdate");
            return (Criteria) this;
        }

        public Criteria andCreatedateNotBetween(Date value1, Date value2) {
            addCriterion("createdate not between", value1, value2, "createdate");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}